home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / nfs_mount.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  100 lines

  1.  
  2.  
  3. if(description)
  4. {
  5.  script_id(11356);
  6.  script_version ("$Revision: 1.5 $");
  7.  script_cve_id("CVE-1999-0170", "CVE-1999-0211", "CAN-1999-0554");
  8.  
  9.  name["english"] = "Mountable NFS shares";
  10.  script_name(english:name["english"]);
  11.  
  12.  desc["english"] = "
  13. This plugin attempts to mount each exported NFS shares,
  14. and issues a red alert if it succeeded.
  15.  
  16. Some old versions of nfsd do not do the proper checkings when
  17. it comes to NFS access controls, or the remote host may be 
  18. badly configured.
  19.  
  20.  
  21. Risk factor : High";
  22.  
  23.  
  24.  script_description(english:desc["english"]);
  25.  
  26.  summary["english"] = "Checks for NFS";
  27.  summary["francais"] = "VΘrifie les partitions NFS";
  28.  script_summary(english:summary["english"], francais:summary["francais"]);
  29.  
  30.  script_category(ACT_GATHER_INFO);
  31.  
  32.  
  33.  script_copyright(english:"This script is Copyright (C) 2003 Renaud Deraison",
  34.         francais:"Ce script est Copyright (C) 2003 Renaud Deraison");
  35.  family["english"] = "Remote file access";
  36.  family["francais"] = "AccΦs aux fichiers distants";
  37.  script_family(english:family["english"], francais:family["francais"]);
  38.  script_dependencie("rpc_portmap.nasl", "showmount.nasl");
  39.  script_require_keys("rpc/portmap");
  40.  exit(0);
  41. }
  42.  
  43.  
  44.  
  45. include("misc_func.inc");
  46. include("nfs_func.inc");
  47.  
  48. mountable = NULL;
  49.  
  50.  
  51. list = get_kb_list("nfs/exportlist");
  52. if(isnull(list))exit(0);
  53. shares = make_list(list);
  54.  
  55.  
  56. port = get_rpc_port(program:100005, protocol:IPPROTO_UDP);
  57. if ( ! port ) exit(0);
  58. soc = open_priv_sock_udp(dport:port);
  59.  
  60. port2 = get_rpc_port(program:100003, protocol:IPPROTO_UDP);
  61. if ( ! port2 ) exit(0);
  62. soc2 = open_priv_sock_udp(dport:port2);
  63.  
  64. if(!soc)exit(0);
  65.  
  66. foreach share (shares)
  67. {
  68.  fid = mount(soc:soc, share:share);
  69.  if(fid)
  70.  {
  71.   content = readdir(soc:soc2, fid:fid);
  72.   mountable += '+ ' + share + '\n' ;
  73.   flag = 0;
  74.   foreach c (content)
  75.   {
  76.    if(flag == 0){
  77.        mountable += ' + Contents of ' + share + ' : \n';
  78.        flag = 1;
  79.     }
  80.     mountable += ' - ' + c + '\n'; 
  81.   }
  82.   umount(soc:soc, share:share);
  83.   mountable += '\n\n';
  84.  }
  85. }
  86.  
  87. close(soc);
  88.  
  89. if(mountable)
  90. {
  91.  report = string("The following NFS shares could be mounted : \n", 
  92.            mountable,
  93.          "\n",
  94.          "Make sure the proper access lists are set\n",
  95.          "Risk factor : High");
  96.  
  97.  security_hole(port:2049, proto:"udp", data:report);
  98. }         
  99.  
  100.